#pragma once

#include "..\\ExternalTools\\ExternalTools.h"

#include "..\\Loirey\\loirey_GLOBAL.h"
#include "..\\Loirey\\loirey_BasicStructure.h"
#include "..\\Loirey\\loirey_AVLTree.h"

#include "cl_base_Data.h"

using namespace loirey;

class CMultiClassClassifyResult
{
public:
	int ClassAmount;
public:
	int TotalCaseAmount, TruePosAmount;
	CSimpleTypeArray<int> matPrediction;
	CSimpleTypeArray<int> PerClassAmountList_Real;
	CSimpleTypeArray<int> PerClassAmountList_Pred;

	double TotalAccuracy;
	CSimpleTypeArray<double> matConfusion;
	CSimpleTypeArray<double> PrecisionList;
	CSimpleTypeArray<double> RecallList;

public:
	void myInit(int ClassAmount);
	void Clear();

	void NewTest(int RealClassIndex, int Prediction);
	void Analyse();

	void OutputToStream(ostream& outStream);
	void OutputConfusionMatrixToStream(ostream& outStream);
	void OutputPrecisionRecallToStream(ostream& outStream);
};

